package marketplace.web.beans;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import marketplace.ejb.interfaces.IVentaEJB;
import marketplace.jpa.datas.DataReclamo;
import marketplace.jpa.datas.Estado;


@ManagedBean
@SessionScoped
public class ReclamoBean {
	private int idReclamo;
	private String fecha;
	private String descripcion;
	private int idReclamoEliminar;
	private int idReclamoModificar;
	private int idVenta;
	
	@EJB
	IVentaEJB reclamo;
	
	public void registroReclamo() throws  Exception {
		boolean ok = false;
		DataReclamo dr = new DataReclamo();

		SimpleDateFormat f =new SimpleDateFormat("dd/MM/yy");
		Date hoy = new Date();
 		String formattedDate = f.format(hoy);
		dr.setFecha(formattedDate);
		
		dr.setDescripcion(getDescripcion());
		dr.setEstado(Estado.ACTIVO);
		dr.setIdVenta(getIdVenta());
		ok = reclamo.altaReclamo(dr);
		
		
		if (ok) {
			FacesContext.getCurrentInstance().getExternalContext().redirect("template.xhtml");
		} else {
			FacesContext.getCurrentInstance().getExternalContext().redirect("error.xhtml");
		}

	}
	
	public void ingresoReclamo() throws Exception{
		boolean ok = false;
		DataReclamo dr = new DataReclamo();

		SimpleDateFormat f =new SimpleDateFormat("dd/MM/yy");
		Date hoy = new Date();
 		String formattedDate = f.format(hoy);
		dr.setFecha(formattedDate);
		
		dr.setDescripcion(getDescripcion());
		dr.setEstado(Estado.ACTIVO);
		dr.setIdVenta(getIdVenta());
		ok = reclamo.altaReclamo(dr);
		reiniciarValores();
	}
	
	public void getRegistroReclamo() throws Exception {
		FacesContext.getCurrentInstance().getExternalContext().redirect("altaReclamo.xhtml");
	}
	
	public void getModificarReclamo() throws Exception {
		FacesContext.getCurrentInstance().getExternalContext().redirect("modificarReclamo.xhtml");
	}
	
	public void buscarReclamo() throws Exception{
		DataReclamo aux = reclamo.buscarReclamo(getIdReclamoModificar());
		setIdReclamo(aux.getIdReclamo());
		setDescripcion(aux.getDescripcion());
		setFecha(aux.getFecha());
		this.getModificarReclamo();
	}
	
	public void modificarReclamo() throws Exception {
		DataReclamo r = new DataReclamo();
		r.setDescripcion(getDescripcion());
		r.setIdReclamo(getIdReclamoModificar());
		reclamo.modificarReclamo(r);
		reiniciarValores();
		
		
	}
	
	public void eliminarReclamo() throws Exception {
		reclamo.eliminarReclamo(getIdReclamoEliminar());
				
	}
	
	
	public int getIdReclamo() {
		return idReclamo;
	}
	public void setIdReclamo(int idReclamo) {
		this.idReclamo = idReclamo;
	}
	public String getFecha() {
		return fecha;
	}
	public void setFecha(String fecha) {
		this.fecha = fecha;
	}
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public int getIdReclamoEliminar() {
		return idReclamoEliminar;
	}

	public void setIdReclamoEliminar(int idReclamoEliminar) {
		this.idReclamoEliminar = idReclamoEliminar;
	}

	public int getIdVenta() {
		return idVenta;
	}

	public void setIdVenta(int idVenta) {
		this.idVenta = idVenta;
	}

	public int getIdReclamoModificar() {
		return idReclamoModificar;
	}

	public void setIdReclamoModificar(int idReclamoModificar) {
		this.idReclamoModificar = idReclamoModificar;
	}
	
	public void reiniciarValores(){
		
		this.descripcion = "";
		this.fecha = "";
		this.idVenta = 0;
		this.idReclamoEliminar = 0;
		this.idReclamo = 0;
		this.idReclamoModificar = 0;
		
	}
	
	

}
